package com.foreknow.dao.impl;

import com.foreknow.dao.GuestbookDao;
import com.foreknow.mapping.EntityMapping;
import com.foreknow.mapping.MappingFactory;
import com.foreknow.model.Guestbook;
import com.foreknow.util.OraclePagination;
import com.foreknow.util.Pagination;

import java.sql.SQLException;
import java.util.List;

public class GuestbookDaoimpl extends  BaseDAO implements GuestbookDao {
    @Override
    public boolean addMessage(Guestbook guestbook) throws SQLException {
        String sql = "insert into guestbook(name,phone,email,title,content,createdtime) values(?,?,?,?,?,?)";
        int x = jdbcTemplate.update(sql,guestbook.getName(),guestbook.getPhone(),guestbook.getEmail(),guestbook.getTitle(),guestbook.getContent(),guestbook.getCreatedtime());
        return x==1;
    }

    @Override
    public List<Object> getQueryAll() throws SQLException {
       String sql = "select * from guestbook";
        EntityMapping mapping= this.mappingFactory.getMap(MappingFactory.GUESTBOOK_MAPPING);
        List<Object> list=  this.jdbcTemplate.query(sql,mapping);
        return list;
    }

    @Override
    public boolean delectByid(Integer id) throws SQLException {
         String sql="delete from guestbook where id=? ";
         int x=this.jdbcTemplate.update(sql,id);
         return  x==1;
    }

    @Override
    public boolean update(Guestbook guestbook) throws SQLException {
        String sql ="update guestbook set name=?,phone=?,email=?,title=?,content=?,createdtime=? where id=?";
        EntityMapping mapping= this.mappingFactory.getMap(MappingFactory.GUESTBOOK_MAPPING);
      int y=  this.jdbcTemplate.update(sql,guestbook.getName(),guestbook.getEmail(),guestbook.getId(),guestbook.getPhone(),guestbook.getTitle(),guestbook.getContent(),guestbook.getCreatedtime());
        return y==1;
    }

    @Override
    public Guestbook getid(int id) {
        String sql ="select * from guestbook  where id=? ";
        EntityMapping mapping= this.mappingFactory.getMap(MappingFactory.GUESTBOOK_MAPPING);
       List<Object> list=    this.jdbcTemplate.query(sql,mapping,id);
       if (list.size()>0){
         return (Guestbook) list.get(0);
       }
        return null;
    }

    @Override
    public Pagination getGuestbookByPage(int pageSize, int pageNumber) throws SQLException {
        String sql= "select * from guestbook";
        Pagination pagination=new OraclePagination(sql,pageSize,pageNumber);
        return pagination;
    }


}